package day1;

/**
 * @author pacai
 * @version 1.0
 */
public class InsertSort {
    public static void insertSort(int[] arr){
        if(arr == null || arr.length < 2){
            return;
        }
        for (int end = 1; end < arr.length; end++) {
//            int curNumIndex = end;
//            while(curNumIndex - 1 >= 0 && arr[curNumIndex - 1] > arr[curNumIndex]){
//                swap(arr, curNumIndex - 1, curNumIndex);//采取交换的方式进行处理（可以采用移动）
//                curNumIndex--;
//            }
            for(int i = end; i - 1 >= 0 && arr[i] < arr[i - 1]; i--){
                swap(arr, i, i - 1);
            }
        }
    }

    public static void swap(int[] arr, int i, int j){
        if(i != j){
            arr[i] ^= arr[j];
            arr[j] ^= arr[i];
            arr[i] ^= arr[j];
        }
    }

}
